<?php
/**
 * Konkreten Objekte fuer State-Pattern
 * 
 * Beispiel:
 * Pattern zum ein- und ausschalten
 * 
 * @author		Joachim Ruf
 * @copyright	Copyright (c) 2003-2010 Loresoft Software (http://www.loresoft.de)
 * @license		http://yapary.loresoft.de/lizenzbedingungen     New BSD License
 * 
 * */


Class Yapary_Pattern_StateContext
{
	private $state = NULL;
	
	
	/**
	* Konkreten Objekte fuer State-Pattern
	* @param State $_state : Uebergabe des neuen Konkreten Objekts
	*/
	function __construct ( Yapary_Pattern_IState $_state )
	{
		$this->setState($_state);
	}
	
	
	/**
	* Methode zum setzen eines neuen Status
	* @param State $_state : Uebergabe des neuen Konkreten Objekts
	* @return void
	*/
	public function setState ( Yapary_Pattern_IState $_state )
	{
		$this->state = $_state;
	}
	
	
	/**
	* Weiterschalten zum naechsten State
	* @return void
	*/
	public function nextState ( )
	{
		return $this->state->nextState($this).'<br />';
	}
}


?>